home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / ps2epsi < prev    next >
Text File  |  2009-10-12  |  3KB  |  120 lines

  1. #!/bin/sh
  2. # $Id: ps2epsi 9619 2009-04-07 10:20:02Z ken $
  3.  
  4. # This definition is changed on install to match the
  5. # executable name set in the makefile
  6. GS_EXECUTABLE=gs
  7. gs="`dirname $0`/$GS_EXECUTABLE"
  8. if test ! -x "$gs"; then
  9.     gs="$GS_EXECUTABLE"
  10. fi
  11. GS_EXECUTABLE=gs
  12.  
  13. # try to create a temporary file securely
  14. if test -z "$TMPDIR"; then
  15.     TMPDIR=/tmp
  16. fi
  17. if which mktemp >/dev/null 2>/dev/null; then
  18.     tmpfile="`mktemp $TMPDIR/ps2epsi.XXXXXX`"
  19. else
  20.     tmpdir=$TMPDIR/ps2epsi.$$
  21.     (umask 077 && mkdir "$tmpdir")
  22.     if test ! -d "$tmpdir"; then
  23.         echo "failed: could not create temporary file"
  24.         exit 1
  25.     fi
  26.     tmpfile="$tmpdir"/ps2epsi$$
  27. fi
  28. trap "rm -rf \"$tmpfile\"" 0 1 2 3 7 13 15
  29.  
  30. export outfile
  31.  
  32. if [ $# -lt 1 -o $# -gt 2 ]; then
  33.     echo "Usage: `basename $0` file.ps [file.epsi]" 1>&2
  34.     exit 1
  35. fi
  36.  
  37. infile=$1;
  38.  
  39. if [ $# -eq 1 ]
  40. then
  41.     case "${infile}" in
  42.       *.ps)        base=`basename "${infile}" .ps` ;;
  43.       *.cps)    base=`basename "${infile}" .cps` ;;
  44.       *.eps)    base=`basename "${infile}" .eps` ;;
  45.       *.epsf)    base=`basename "${infile}" .epsf` ;;
  46.       *)        base=`basename "${infile}"` ;;
  47.     esac
  48.     outfile=${base}.epsi
  49. else
  50.     outfile=$2
  51. fi
  52.  
  53. "$GS_EXECUTABLE" -q -dBATCH -dNOPAUSE -dSAFER -dDELAYSAFER -sDEVICE=bbox -sOutputFile=/dev/null "${infile}" 2>${outfile}
  54.  
  55. ls -l "${infile}" |
  56. awk 'F==1    {
  57.         cd="%%CreationDate: " $6 " " $7 " " $8;
  58.         t="%%Title: " $9;
  59.         f="%%For:" U " " $3;
  60.         c="%%Creator: Ghostscript ps2epsi from " $9;
  61.         next;
  62.         }
  63.     /^%!/    {next;}
  64.     /^%%Title:/    {t=$0; next;}
  65.     /^%%Creator:/    {c=$0; next;}
  66.     /^%%CreationDate:/    {cd=$0; next;}
  67.     /^%%For:/    {f=$0; next;}
  68.     !/^%/    {
  69.         print "/ps2edict 30 dict def";
  70.         print "ps2edict begin";
  71.         print "/epsititle (" t "\\n) def";
  72.         print "/epsicreator (" c "\\n) def";
  73.         print "/epsicrdt (" cd "\\n) def";
  74.         print "/epsifor (" f "\\n) def";
  75.         exit(0);
  76.         }
  77.     ' U="$USERNAME$LOGNAME"  F=1 - F=2 "${infile}" >"$tmpfile"
  78.  
  79. ls -l "${outfile}" |
  80. awk 'F==1    {
  81.         b="%%BoundingBox: 0 0 0 0\\n";
  82.         }
  83.         /^%%BoundingBox:/    {b=$0; next;}
  84.         /^%%HiResBoundingBox:/    { 
  85.         hb=$0;
  86.         print "ps2edict where {pop} {/ps2edict 30 dict def} ifelse";
  87.         print "ps2edict begin";
  88.         print "/BBoxString (" b "\\n) def";
  89.         print "/HiresBBoxString (" hb "\\n) def";
  90.         print "end";
  91.         exit(0);
  92.         }
  93.     ' F=1 - F=2 "${outfile}" >>"$tmpfile"
  94.  
  95. "$GS_EXECUTABLE" -q -dNOPAUSE -dSAFER -dDELAYSAFER -r72 -sDEVICE=bit -sOutputFile=/dev/null "$tmpfile" ps2epsi.ps "$tmpfile" <"${infile}" 1>&2
  96. rm -f "$tmpfile"
  97. rm -rf "$tmpdir"
  98.  
  99. (
  100. cat << BEGINEPS
  101. save countdictstack mark newpath /showpage {} def /setpagedevice /pop load def
  102. %%EndProlog
  103. %%Page 1 1
  104. BEGINEPS
  105.  
  106. cat "${infile}" |
  107. LC_ALL=C \
  108. sed -e '/^%%BeginPreview:/,/^%%EndPreview[^!-\~]*$/d' -e '/^%!PS-Adobe/d'\
  109.     -e '/^%%[A-Za-z][A-Za-z]*[^!-\~]*$/d' -e '/^%%[A-Za-z][A-Za-z]*: /d'
  110.  
  111. cat << ENDEPS
  112. %%Trailer
  113. cleartomark countdictstack exch sub { end } repeat restore
  114. %%EOF
  115. ENDEPS
  116.  
  117. ) >> "${outfile}"
  118.  
  119. exit 0
  120.